XML a MSSQL

Otázka od: Lstiburek Pavel

10. 5. 2004 16:54

Nezkousel jste ziskat XML data z dotazu ?
V QA to jde, ale neprisel jsem na zpusob ja to dostat do
Delphi.

Pavel


Odpovedá: Petr Langer

11. 5. 2004 7:54

Ahoj,
Je treba nacitat data nikoliv jako tabulku, ale jako stream.
Google mi na dotaz : Delphi SQLXML
nasel napr. toto
http://www.thedelphimagazine.com/samples/1507/1507.htm

HTH,
    pl

----- Original Message -----
From: "Lstiburek Pavel" <lstiburek@ceb.cz>
Subject: XML a MSSQL


> Nezkousel jste ziskat XML data z dotazu ?
> V QA to jde, ale neprisel jsem na zpusob ja to dostat do
> Delphi.
>
> Pavel


Odpovedá: Petr Langer

11. 5. 2004 8:42

Jeste doplnek,
jak se tak divam na ten jejich priklad, tak pro nacteni celeho streamu
pouzivaji
ResultMemo.Lines.Text := Stream.ReadText(Integer(adReadAll));

Toto se mi neosvedcilo a nasel jsem na MS webu Q280067
(http://support.microsoft.com/default.aspx?scid=kb;en-us;280067).

Vyrazne rychlejsi je postup kdy nacitas data po castech (napr. 32000) a
treba pomoci move() si je skladas dohromady, neco jako:

      i := FStream.Size;
      setLength(s, i);
      ii := 1;
      while not(FStream.EOS) do
       begin
         s2 := FStream.ReadText(32000);
         l := length(s2);
         Move(s2[1], s[ii], l*2);
         inc (ii, l);
       end;
      setLength(s, ii-1);

... je to kus mojeho kodu, nazvy si upravis. s, s2 jsou WideString

Pouzivam jeste nastaveni:
Command.DefaultInterface.Properties.Item['Output Encoding'].Value :=
'unicode';

HTH,
    pl

----- Original Message -----
From: "Petr Langer" <langer@xdom.cz>
Subject: Re: XML a MSSQL


> Ahoj,
> Je treba nacitat data nikoliv jako tabulku, ale jako stream.
> Google mi na dotaz : Delphi SQLXML
> nasel napr. toto
> http://www.thedelphimagazine.com/samples/1507/1507.htm
>
> HTH,
> pl
>
> ----- Original Message -----
> From: "Lstiburek Pavel" <lstiburek@ceb.cz>
> Subject: XML a MSSQL
>
>
> > Nezkousel jste ziskat XML data z dotazu ?
> > V QA to jde, ale neprisel jsem na zpusob ja to dostat do
> > Delphi.
> >
> > Pavel